{"version":3,"file":"static/chunks/pages/_site/[city]/subscriptions/[[...alias]]-ab868690846675a0.js","mappings":"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","sources":["webpack://_N_E/?81aa","webpack://_N_E/../../packages/ui-react/src/components/svg/arrows/ArrowUp.tsx","webpack://_N_E/./src/features/showcase/AuthBanner.tsx","webpack://_N_E/./src/features/showcase/Category.tsx","webpack://_N_E/./src/features/showcase/ServiceCategory.tsx","webpack://_N_E/./src/features/showcase/ShowcaseSkeleton.tsx","webpack://_N_E/./src/features/showcase/Showcase.tsx","webpack://_N_E/./src/features/showcase/index.tsx","webpack://_N_E/./src/features/showcase/constants/unauthorizedAbnVariants.ts","webpack://_N_E/./pages/_site/[city]/subscriptions/[[...alias]].tsx","webpack://_N_E/./src/components/PopupForm/styled.tsx","webpack://_N_E/./src/components/PopupForm/index.tsx","webpack://_N_E/./src/features/lk/components/StubNoData/styled.ts","webpack://_N_E/./src/features/lk/components/StubNoData/index.tsx","webpack://_N_E/./src/helpers/hooks/useRouterChange.tsx","webpack://_N_E/./src/store/selectors/domain.ts","webpack://_N_E/../../packages/ui-react/src/components/controls/baseRadio/styled.ts","webpack://_N_E/../../packages/ui-react/src/components/controls/baseRadio/index.tsx","webpack://_N_E/../../packages/ui-react/src/components/typography/TextWrapper/index.ts"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_site/[city]/subscriptions/[[...alias]]\",\n function () {\n return require(\"private-next-pages/_site/[city]/subscriptions/[[...alias]].tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_site/[city]/subscriptions/[[...alias]]\"])\n });\n }\n ","import { createSvg } from '../createSvg';\n\nconst ArrowUp = (\n {\n strokeWidth = 1.5,\n },\n): JSX.Element => {\n return \n \n \n ;\n};\n\nexport default createSvg(\n ArrowUp,\n 'arrow-up',\n);\n","import { LazyLoadImage } from 'react-lazy-load-image-component';\nimport Link from 'next/link';\nimport styled from 'styled-components';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { H4 } from '@r1-frontend/ui-react/components/typography/heading';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport { BlockContainer } from '@r1-frontend/ui-react/experimental/containers';\n\nimport { USER_LOGIN_ROUTE } from '~/src/constants/routes';\n\nconst AuthBanner = ({ ...props }) => {\n return (\n \n

Авторизуйтесь, чтобы видеть персональные предложения

\n \n \n \n \n \n \n
\n );\n};\n\nexport default styled(AuthBanner)`\n flex-direction: column;\n background: \n linear-gradient(107deg, #9BCDDD -5.78%, rgba(155, 205, 221, 0.00) 33.54%), \n linear-gradient(307deg, #C1D1D9 -12.26%, rgba(196, 211, 218, 0.00) 31.41%),\n #E5F0F5;\n \n img, picture {\n position: absolute;\n bottom: 0;\n right: 40px;\n width: 197px;\n object-position: 0 32px;\n }\n\n ${Button} {\n width: max-content;\n }\n \n @media (max-width: ${wideBreakpoints.mobile}){\n img, picture {\n right: 16px;\n bottom: 50%;\n transform: translateY(50%);\n width: 119px;\n object-position: center;\n }\n\n ${H4} {\n width: 182px;\n }\n }\n`;\n","import styled from 'styled-components';\n\nimport { IImageSource, progressiveBackground } from '@r1-frontend/ui-react/components/helpers/image';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { H4, H5 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { IndentContainer, RounderContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { useMatchMediaByWidth } from '@r1-frontend/shared/hooks/useMatchMedia';\n\ntype TCategoryProps = {\n title: string,\n image: IImageSource,\n width: number,\n\n selected?: boolean,\n onClick?: () => void,\n\n className?: string,\n}\n\nconst Category = ({ title, className, onClick }: TCategoryProps) => {\n const isTablet = useMatchMediaByWidth(wideBreakpoints.tablet);\n\n return (\n \n \n {isTablet\n ?
{title}
\n :

{title}

\n }\n
\n \n );\n};\n\nexport default styled(Category)`\n width: ${p => p.width}px;\n height: 220px;\n\n @media (max-width: ${wideBreakpoints.tablet}) {\n height: 180px;\n }\n\n background-color: ${COLORS.BgSurface};\n background-size: cover;\n background-position: center;\n\n text-align: center;\n transition: 0.3s;\n\n &:hover {\n background-color: ${COLORS.ButtonSecondary};\n\n h4, h5 {\n color: ${COLORS.ButtonAccent};\n }\n }\n\n ${p => p.selected && `\n h4, h5 {\n color: ${COLORS.ButtonAccent};\n }\n `}\n\n ${p => progressiveBackground(p.image)};\n\n ${IndentContainer} {\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n }\n`;\n","import { ReactNode } from 'react';\nimport Link from 'next/link';\n\nimport Alert, { AlertButtons } from '@r1-frontend/ui-react/components/Alert';\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\nimport { SingleArrowDown, SingleArrowUp } from '@r1-frontend/ui-react/components/svg/arrows';\nimport { H3 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport TextWrapper from '@r1-frontend/ui-react/components/typography/TextWrapper';\nimport { ListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { getPluralize } from '@r1-frontend/shared/helpers/pluralize';\n\nimport StubNoData from '~/src/features/lk/components/StubNoData';\nimport { useElementVisibility } from '~/src/helpers/hooks/useElementVisibility';\n\nconst connectText = getPluralize(['подключен', 'подключено', 'подключено']);\nconst serviceText = getPluralize(['сервис', 'сервиса', 'сервисов']);\nconst themText = getPluralize(['им', 'ими', 'ими']);\n\ntype TServiceCategoryProps = {\n name: string | null,\n description?: string | null,\n category?: string,\n withStub?: boolean,\n withButtonShowAll?: boolean,\n showAll?: boolean,\n onToggleShowAll?: () => void,\n children: ReactNode,\n onShowCategory?: () => void,\n connectedCount?: number,\n};\n\nconst ServiceCategory = (\n {\n name,\n description,\n category,\n connectedCount,\n\n withStub,\n withButtonShowAll,\n showAll,\n onToggleShowAll,\n onShowCategory,\n\n children,\n }: TServiceCategoryProps,\n) => {\n const ref = useElementVisibility(() => {\n onShowCategory && onShowCategory();\n });\n\n return (\n \n \n

{name}

\n {description && (\n {description}\n )}\n
\n {!!connectedCount && (\n \n \n У вас {connectText(connectedCount)} {connectedCount} {serviceText(connectedCount)}. Управлять {themText(connectedCount)} можно в разделе Мои услуги.\n \n \n \n \n \n )}\n \n {withStub\n ? (\n \n )\n : children\n }\n \n {withButtonShowAll && (\n \n : }\n onClick={onToggleShowAll}\n data-test={`Showcase__ButtonShowAll__${category}`}\n >\n {showAll ? 'Скрыть' : 'Показать все'}\n \n \n )}\n \n );\n};\n\nexport default ServiceCategory;\n","import Skeleton from 'react-loading-skeleton';\n\nimport { ListContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\n\ntype TShowcaseSkeletonProps = {\n count: number,\n}\n\nconst ShowcaseSkeleton = ({ count }: TShowcaseSkeletonProps) => {\n return (\n <>\n {Array.from({ length: 4 }, (_, key) => (\n \n \n \n {Array.from({ length: count }, (__, cardKey) => (\n \n ))}\n \n \n ))}\n \n );\n};\n\nexport default ShowcaseSkeleton;\n","import { useEffect, useRef } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useRouter } from 'next/router';\nimport styled from 'styled-components';\n\nimport Button from '@r1-frontend/ui-react/components/buttons/button';\nimport { ButtonGroup } from '@r1-frontend/ui-react/components/buttons/buttonGroup/ButtonGroup';\nimport WideContainer from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { WithSkeleton, WithSkeletonContext } from '@r1-frontend/ui-react/components/loaders/Skeleton';\nimport NukaCarousel from '@r1-frontend/ui-react/components/NukaCarousel';\nimport { ArrowUp } from '@r1-frontend/ui-react/components/svg/arrows';\nimport { H2 } from '@r1-frontend/ui-react/components/typography/heading';\nimport {\n IndentContainer,\n ListContainer,\n} from '@r1-frontend/ui-react/experimental/containers';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\n\nimport { Drawer } from '~/src/components/Drawer';\nimport AuthFormPopup from '~/src/components/PopupForm';\nimport { flushState, setAuthFormPopup, setShopItemId } from '~/src/entities/vases/PartnerServices/actions';\nimport ActionPopup from '~/src/entities/vases/PartnerServices/components/popups';\nimport ActionResultPopup from '~/src/entities/vases/PartnerServices/components/popups/ActionResult';\nimport StopperPopup from '~/src/entities/vases/PartnerServices/components/popups/Stopper';\nimport ServiceDetails from '~/src/entities/vases/PartnerServices/components/ServiceDetails';\nimport {\n useContextDispatch,\n useContextSelector,\n} from '~/src/entities/vases/PartnerServices/hooks';\nimport Services from '~/src/entities/vases/PartnerServices/Services';\nimport { setCategory, toggleShowAllCategoryItems } from '~/src/entities/vases/store/actions';\nimport { loadSubscriptions } from '~/src/entities/vases/store/actions/thunk';\nimport { TFilterCategory, TSpecificVas, TSubscription, TVasService } from '~/src/entities/vases/store/reducer';\nimport { selectAvailableServicesByCategory } from '~/src/entities/vases/store/selectors';\n// TODO - убрать импорты из модуля domru-tv, перенести в entities\nimport MultibundleCard from '~/src/features/domru-tv/packages/components/MultiBundleCard';\nimport { useRouterChange } from '~/src/helpers/hooks/useRouterChange';\nimport { useValueByBreakpoint } from '~/src/helpers/hooks/useValueByBreakpoint';\nimport { TState } from '~/src/store';\nimport { selectIsAuth } from '~/src/store/selectors/auth/selectIsAuth';\n\nimport showcaseAnalytics from './analytics';\nimport AuthBanner from './AuthBanner';\nimport Category from './Category';\nimport ServiceCategory from './ServiceCategory';\nimport ShowcaseSkeleton from './ShowcaseSkeleton';\n\ntype TShowcaseProps = {\n className?: string,\n}\n\ntype TFilter = {\n category: TFilterCategory,\n title: string,\n}\n\ntype TQuery = {\n alias?: [TFilterCategory],\n shopItemId?: string,\n}\n\nconst filters: TFilter[] = [\n { category: 'tvPackages', title: 'Пакеты ТВ-каналов' },\n { category: 'partnerService', title: 'Полезные сервисы' },\n { category: 'antiviruses', title: 'Кибер-безопасность' },\n { category: 'subscriptions', title: 'Онлайн-кинотеатры' },\n { category: 'speedBonuses', title: 'Скоростные бонусы' },\n { category: 'additionalTVAndMovixServices', title: 'Доп. сервисы ТВ и Movix' },\n];\n\nconst hasVasByShopItemId = (subscriptions: TSubscription[], shopItemId: number): boolean => {\n return subscriptions.some(item => item.shopItemId === shopItemId);\n};\n\nconst hasVasInConnected = (vas: TVasService, shopItemId: number): boolean => {\n return Object.values(vas).some(item => hasVasByShopItemId(item.items, shopItemId));\n};\n\nconst hasVasInAvailable = (specificVases: TSpecificVas[], shopItemId: number): boolean => {\n return specificVases.some(specificVas => hasVasByShopItemId(specificVas.items, shopItemId));\n};\n\nconst Showcase = ({ className }: TShowcaseProps) => {\n const dispatch = useDispatch();\n const contextDispatch = useContextDispatch();\n\n const { isShowDetails, authFormPopup } = useContextSelector(state => ({\n isShowDetails: state.isShowDetails,\n authFormPopup: state.authFormPopup,\n }));\n\n const {\n availableServices: {\n loading,\n specific,\n selectedCategory,\n },\n connected,\n loaded,\n isAuth,\n } = useSelector((state: TState) => ({\n availableServices: selectAvailableServicesByCategory(state),\n connected: state.vasReducer.connected,\n loaded: state.vasReducer.loaded,\n isAuth: selectIsAuth(state),\n }), shallowEqual);\n\n const {\n query: {\n alias = [null],\n shopItemId,\n },\n replace,\n push,\n } = useRouter();\n\n const scrollPosition = useRef(0);\n\n useEffect(() => {\n const [category] = alias;\n\n dispatch(loadSubscriptions({\n withMultibundle: true,\n withWatchControl: true,\n selectedCategory: category,\n }));\n }, []);\n\n useEffect(() => {\n if (!Number(shopItemId) && !loaded) {\n return;\n }\n if (hasVasInAvailable(specific, Number(shopItemId))) {\n contextDispatch(setShopItemId(Number(shopItemId)));\n }\n }, [loaded]);\n\n useEffect(() => {\n if (!Number(shopItemId)) {\n return;\n }\n if (hasVasInConnected(connected, Number(shopItemId))) {\n push(`/lk/vases/?shopItemId=${shopItemId}`);\n }\n }, [connected, push, shopItemId]);\n\n useRouterChange({\n onStart: (next) => {\n const matches = next.match(/\\/subscriptions\\/(\\w+)?/);\n const category = matches\n ? matches[1] as TFilterCategory | null\n : null;\n\n dispatch(setCategory(\n selectedCategory === category ? null : category,\n ));\n },\n });\n\n const count = useValueByBreakpoint({\n desktop: 4,\n sDesktop: 3,\n laptop: 2,\n });\n\n const handleToggleShowAll = (service: TSpecificVas) => {\n if (!service?.category) {\n return;\n }\n\n if (!service.showAll) {\n scrollPosition.current = window.scrollY;\n showcaseAnalytics.showSpecificCategoryImpressions({\n category: service.category,\n items: service.items,\n list: 'all',\n start: count,\n });\n } else {\n window.scrollTo({\n top: scrollPosition.current,\n behavior: 'smooth',\n });\n }\n\n dispatch(toggleShowAllCategoryItems({\n category: service.category,\n value: !service.showAll,\n }));\n };\n\n const handleCloseDrawer = async() => {\n contextDispatch(flushState());\n scrollPosition.current = window.scrollY;\n\n await replace(`/subscriptions/${selectedCategory || ''}`, undefined, { shallow: true });\n\n window.scrollTo({\n top: scrollPosition.current,\n });\n };\n\n const handleOnSuccessResult = () => {\n dispatch(loadSubscriptions());\n };\n\n const handleSelectCategory = (category: TFilterCategory) => {\n push(`/subscriptions/${selectedCategory !== category ? category : ''}`);\n };\n\n const handleScrollToTop = () => {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n };\n\n const handleClickMultibundleCard = () => {\n showcaseAnalytics.multibundle.details();\n };\n\n const handleOnShowSpecificCategory = (category: TFilterCategory | undefined, items: TSubscription[]) => {\n if (!category) {\n return;\n }\n\n showcaseAnalytics.showSpecificCategoryImpressions({\n category,\n items,\n list: 'start',\n });\n };\n\n const {\n slideWidth,\n cellSpacing,\n slidesToShow,\n cardWidth,\n } = useValueByBreakpoint({\n desktop: { slideWidth: '250px', cardWidth: 237, cellSpacing: 16, slidesToShow: 6 },\n sDesktop: { slideWidth: '187px', cardWidth: 174, cellSpacing: 16, slidesToShow: 6 },\n laptop: { slideWidth: '156px', cardWidth: 143, cellSpacing: 16, slidesToShow: 6 },\n tablet: { slideWidth: '207px', cardWidth: 194, cellSpacing: 12, slidesToShow: 3 },\n mobile: { slideWidth: '197px', cardWidth: 194, cellSpacing: 12, slidesToShow: 1 },\n });\n\n return (\n \n \n

Все услуги

\n\n \n \n {filters.map(filter => (\n \n handleSelectCategory(filter.category)}\n selected={selectedCategory === filter.category}\n width={cardWidth}\n />\n \n ))}\n \n \n\n \n \n {loading\n ? \n : (\n <>\n {!isAuth && }\n {specific.map(service => {\n const maxCount = count - (service.multibundle ? 1 : 0);\n const items = service.items.slice(0, service.showAll ? undefined : maxCount);\n const withStub = !service.items.length && !service.multibundle;\n const withButtonShowAll = service.items.length > maxCount;\n const connectedCount = service.category ? connected[service.category].items.length : 0;\n\n return (\n handleToggleShowAll(service)}\n onShowCategory={() => handleOnShowSpecificCategory(service.category, items)}\n connectedCount={connectedCount}\n >\n {service.multibundle && (\n \n )}\n \n \n );\n })}\n \n )\n }\n \n \n }\n onClick={handleScrollToTop}\n >\n Вернуться наверх\n \n \n \n \n \n\n \n \n \n\n \n\n \n\n contextDispatch(setAuthFormPopup({ isOpen: false }))}\n isOpen={authFormPopup.isOpen}\n userLoginRoute={authFormPopup.url}\n btnText='Стать клиентом'\n authBtnText='Авторизоваться'\n />\n\n \n
\n
\n );\n};\n\nexport default styled(Showcase)`\n width: 100%;\n\n .react-skeleton-block {\n display: block;\n }\n\n -webkit-tap-highlight-color: transparent;\n`;\n","import SpeedBonusConnection from '~/src/entities/speed-bonus';\nimport Context from '~/src/entities/vases/PartnerServices/Context';\n\nimport SubscriptionShowcase from './Showcase';\n\nconst Showcase = (): JSX.Element => {\n return (\n \n \n \n \n \n );\n};\n\nexport default Showcase;\n","import { getABNVariant } from '~/src/helpers/abn-tests';\n\nexport const NOT_AUTH_SHOWCASE = {\n testName: 'vas_page_unauthorized',\n\n variants: {\n on: 'vas_page_unauthorized_on',\n off: 'vas_page_unauthorized_off',\n },\n};\n\nexport const unauthorizedShowcaseEnabled = () => getABNVariant(NOT_AUTH_SHOWCASE.testName) === NOT_AUTH_SHOWCASE.variants.on;\n","import React from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { NextPage } from 'next';\n\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\n\nimport Layout from '~/src/features/_layout';\nimport Showcase from '~/src/features/showcase';\nimport { unauthorizedShowcaseEnabled } from '~/src/features/showcase/constants/unauthorizedAbnVariants';\nimport { initialProps } from '~/src/helpers/basePageFunc';\nimport { nonPermanentRedirect } from '~/src/helpers/url';\nimport { TState } from '~/src/store';\nimport { getHostname, selectCompanyName } from '~/src/store/selectors/city';\n\nconst SubscriptionsPage: NextPage = () => {\n const { hostname, companyName, currentCity } = useSelector((state: TState) => ({\n hostname: getHostname(state),\n companyName: selectCompanyName(state),\n currentCity: state.city.currentCity,\n }), shallowEqual);\n\n return (\n \n \n \n );\n};\n\nSubscriptionsPage.getInitialProps = async(options) => {\n const { res } = options;\n const { validatedAccessToken } = await initialProps(options);\n\n\n if (!unauthorizedShowcaseEnabled() && !validatedAccessToken) {\n nonPermanentRedirect({ res, location: '/' });\n }\n\n return {};\n};\n\nexport default SubscriptionsPage;\n","import styled from 'styled-components';\n\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport InputSimple, { nameDecorator, phoneDecorator } from '@r1-frontend/ui-react/components/inputSimple';\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport DefaultPopup from '@r1-frontend/ui-react/components/popups/defaultPopup';\nimport { BorderRadius } from '@r1-frontend/ui-react/tokens/borderRadius';\nimport { BoxShadow } from '@r1-frontend/ui-react/tokens/boxShadow';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\n\nexport const BREAKPOINT = '@media (max-width: 640px)';\n\nconst InputPhone = phoneDecorator(InputSimple);\nconst InputName = nameDecorator(InputSimple);\n\nexport const Popup = styled(DefaultPopup)`\n ${BREAKPOINT} {\n top: 100px;\n }\n`;\n\nexport const RequestFormWrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n max-width: 780px;\n`;\n\nexport const Wrapper = styled.div`\n height: 100%;\n width: 100%;\n padding: 32px;\n background: ${COLORS.BgMain};\n box-shadow: ${BoxShadow.L};\n border-radius: ${BorderRadius.OuterBlockRadius};\n`;\n\nexport const Title = styled.h2`\n ${FONTS.H3};\n margin-right: 46px;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n ${FONTS.H4};\n margin-right: 32px;\n }\n`;\n\nexport const Inputs = styled.div`\n display: flex;\n grid-gap: 12px;\n align-items: flex-start;\n margin-bottom: 8px;\n margin-top: 16px;\n width: 100%;\n flex-wrap: nowrap;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-top: 16px;\n flex-wrap: wrap;\n }\n`;\n\nexport const Name = styled(InputName)`\n display: block;\n max-width: auto;\n margin-bottom: 0;\n\n @media (max-width: 530px) {\n width: 100%;\n }\n`;\n\nexport const Phone = styled(InputPhone)`\n display: block;\n max-width: auto;\n margin-bottom: 0;\n\n @media (max-width: 530px) {\n width: 100%;\n }\n`;\n\nexport const ButtonBlock = styled.div`\n display: flex;\n grid-gap: 12px;\n flex-wrap: nowrap;\n\n @media (max-width: ${wideBreakpoints.mobile}) {\n margin-top: 16px;\n flex-wrap: wrap;\n }\n`;\n\nexport const OrAuth = styled.div`\n column-gap: 12px;\n & > a {\n color: ${COLORS.Link};\n }\n`;\n\nexport const Agree = styled.div<{textColor: string}>`\n display: block;\n max-width: 300px;\n margin-bottom: 16px;\n\n a {\n display: inline-block;\n border-bottom: 1px solid ${p => p.textColor ? p.textColor : COLORS.ButtonPrimary};\n color: ${p => p.textColor ? p.textColor : COLORS.ButtonPrimary};\n }\n\n @media (max-width: ${wideBreakpoints.laptop}) {\n width: calc(100% - 254px);\n }\n\n @media screen and (max-width: 859px) {\n width: 100%;\n padding-left: 0;\n }\n`;\n\nexport const Button = styled(BaseButton)`\n width: fit-content;\n\n @media screen and (max-width: ${wideBreakpoints.mobile}) {\n width: 100%;\n }\n`;\n","import React, { Dispatch, FC, SetStateAction, useCallback, useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport {\n requestByConnection,\n RequestDto,\n ResponseDto,\n} from '@r1-frontend/api-domru/api-request/v1/user/request-by-connection';\n\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\nimport { PolicyNote } from '@r1-frontend/ui-react/components/PolicyNote';\nimport { EResultPopupStatus } from '@r1-frontend/ui-react/components/popups/popupResult';\nimport { IndentContainer } from '@r1-frontend/ui-react/experimental/containers';\nimport { ACTIONS } from '@r1-frontend/shared/constants/analytics';\nimport { EProductsId } from '@r1-frontend/shared/types/EProductsId';\n\nimport PopupResult from '~/src/components/Popups/PopupResult';\nimport { POLICY_PAGE_LINK } from '~/src/constants';\nimport { USER_LOGIN_ROUTE } from '~/src/constants/routes';\nimport { dataLayerForCBPhonePush, dataLayerForCBPhonePushWrapper } from '~/src/helpers/eventsForDataLayer';\nimport { selectCsrf } from '~/src/store/selectors/auth/selectCsrf';\n\nimport * as ST from './styled';\n\nexport type TField = {\n value: string,\n isValid: boolean,\n clearInput: () => void,\n}\n\nexport type TMessage = {\n ok: boolean,\n text: string,\n}\n\nexport interface ISubmitParam {\n fio: string,\n phone: string,\n}\n\ninterface IResultPopup {\n isOrderOpened: boolean,\n isResultOpened: boolean,\n resultTitle: string,\n resultText: string,\n resultType: EResultPopupStatus,\n}\n\ninterface IProps {\n isLoading?: boolean,\n isPopup?: boolean,\n withAgreeLink?: boolean,\n option?: string,\n message?: TMessage | null,\n btnText?: string | React.ReactNode,\n submitRequest?: (param: ISubmitParam) => void,\n formFilledHandler?: () => void,\n title?: string,\n handleAuthClick?: () => void,\n onlyBecomeClient?: boolean,\n getParams?: React.ReactNode | string,\n onClose: () => void,\n isOpen: boolean,\n userLoginRoute?: string,\n authBtnText?: string,\n}\n\nconst AuthForm: FC = ({\n isLoading,\n title = 'Чтобы подключить услугу, станьте клиентом Дом.ру или авторизуйтесь',\n btnText = 'Подключиться',\n formFilledHandler,\n getParams,\n handleAuthClick,\n onlyBecomeClient = false,\n option,\n isPopup,\n isOpen,\n onClose,\n userLoginRoute,\n authBtnText = 'Войти',\n}: IProps) => {\n const csrf = useSelector(selectCsrf);\n\n const [phone, setPhone] = useState();\n const [name, setName] = useState();\n const [isValidInputs, setIsValidInputs] = useState(false);\n const [isOpenPopup, setIsOpenPopup] = useState(true);\n const [startInput, setStartInput] = useState(false);\n\n useEffect(() => {\n setIsValidInputs(!!(phone?.isValid && name?.isValid));\n if (isValidInputs && formFilledHandler) {\n formFilledHandler();\n }\n }, [phone, name, formFilledHandler]);\n\n useEffect(() => {\n setStartInput(false);\n }, [option]);\n\n const onChangeHandler = (stateInput: TField, _setState: Dispatch>) => {\n // @TODO stateInput.value убрать из условия после фикса nameDecorator (useEffect onchange) UI react\n if (!startInput && stateInput.value !== undefined) {\n dataLayerForCBPhonePush({ action: ACTIONS.started, requestId: null, option, isPopup });\n setStartInput(true);\n }\n _setState(stateInput);\n };\n\n const submitHandler = () => {\n if (isValidInputs) {\n submitRequest({\n fio: name?.value || '',\n phone: phone?.value || '',\n product_id: [EProductsId.internet],\n csrf,\n });\n phone?.clearInput();\n name?.clearInput();\n setPhone(undefined);\n setName(undefined);\n }\n };\n\n const [popup, setPopup] = useState({\n isOrderOpened: false,\n isResultOpened: false,\n resultTitle: '',\n resultText: '',\n resultType: EResultPopupStatus.DEFAULT,\n });\n\n const submitRequest = useCallback(async(params: RequestDto) => {\n const resp = await doRequest.apiRequest(requestByConnection(params));\n if (resp.isSuccess) {\n const { message, status } = resp.payload;\n dataLayerForCBPhonePushWrapper({\n status: resp.payload.status,\n option: resp.payload.status ? '' : resp.payload.message,\n });\n openPopupResult(!!status, message);\n } else {\n openPopupResult(false, 'Не удалось отправить заявку.');\n }\n }, []);\n\n const openPopupResult = useCallback((ok, message) => {\n setIsOpenPopup(false);\n setPopup({\n isOrderOpened: false,\n isResultOpened: true,\n resultType: ok ? EResultPopupStatus.SUCCESS : EResultPopupStatus.ERROR,\n resultTitle: ok ? 'Заявка на подключение отправлена' : 'Произошла ошибка',\n resultText: ok ? 'Мы свяжемся с вами в ближайшее время' : message,\n });\n }, []);\n\n const closePopup = useCallback(() => {\n onClose();\n setIsOpenPopup(true);\n setPopup(state => ({\n ...state,\n isResultOpened: false,\n }));\n }, []);\n\n return (\n <>\n {isOpenPopup &&\n \n \n \n {title}\n \n \n onChangeHandler(stateInput, setName)}\n placeholder='Как вас зовут?'\n errorMessage='Ожидаются только буквы и дефисы'\n data-test='field-name'\n className={'ym-disable-keys'}\n />\n onChangeHandler(stateInput, setPhone)}\n placeholder='Номер телефона'\n errorMessage='Введите телефон в формате +7 (999) 999-99-99'\n data-test='field-phone'\n className={'ym-disable-keys'}\n />\n \n {!onlyBecomeClient && (\n \n \n \n )}\n \n \n {onlyBecomeClient\n ? \n : \n }\n \n \n \n }\n \n \n );\n};\n\nexport default AuthForm;\n","import styled from 'styled-components';\n\nimport Widget from '~/src/components/Widget';\n\nexport const ImageBlock = styled(Widget.ImageBlock)`\n picture {\n max-width: 70px;\n height: auto;\n margin: auto;\n }\n`;\n","import { ReactNode } from 'react';\n\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\n\nimport Widget from '~/src/components/Widget';\n\nimport * as ST from './styled';\n\ninterface IStubImage {\n url: string,\n urlWebp: string,\n alt: string,\n}\n\nconst defaultImageData: IStubImage = {\n url: '/static/images/lk/stub-eyes.png',\n urlWebp: '/static/images/lk/stub-eyes.webp',\n alt: 'Изображение глаз',\n};\n\ninterface IStubProps {\n title: string,\n description: string | ReactNode,\n imageData?: IStubImage,\n children?: ReactNode,\n}\n\nconst StubNoData = ({\n title,\n description,\n imageData = defaultImageData,\n children = <>,\n}: IStubProps): JSX.Element => {\n const { url, urlWebp, alt } = imageData;\n\n return (\n \n \n \n \n \n \n \n {title}\n {description}\n {children}\n \n \n );\n};\n\nexport default StubNoData;\n","import { useEffect, useState } from 'react';\nimport { useRouter } from 'next/router';\n\nexport type TRouterChangeOptions = Partial<{\n onStart: (next: string) => void,\n onComplete: () => void,\n\n /**\n * Фильтрует страницы, при переходе на которые\n * будет изменятся параметр `isLoading`. По умолчанию\n * `isLoading` изменяется для всех страниц\n */\n only: string[],\n}>\n\nexport const useRouterChange = (options: TRouterChangeOptions = {}): [boolean, string] => {\n const router = useRouter();\n const [isLoading, setIsLoading] = useState(false);\n const [nextUrl, setNextUrl] = useState('');\n\n useEffect(() => {\n const { onStart, onComplete, only } = options;\n\n const onShow = (navUrl: string) => {\n setIsLoading(\n !only?.length || only.some(url => navUrl.startsWith(url)),\n );\n setNextUrl(navUrl);\n onStart && onStart(navUrl);\n };\n\n const onHide = () => {\n setIsLoading(false);\n onComplete && onComplete();\n };\n\n router.events.on('routeChangeStart', onShow);\n router.events.on('routeChangeComplete', onHide);\n\n return () => {\n router.events.off('routeChangeStart', onShow);\n router.events.off('routeChangeComplete', onHide);\n };\n\n }, [router.events]);\n\n return [isLoading, nextUrl];\n};\n","import get from 'lodash/get';\n\nimport { TState } from '~/src/store';\n\n// @todo remove lodash from getting value from expected and described structure `TState`\nexport function selectDomain(state: TState): string {\n return get(state, 'auth.billingDomain') || get(state, 'city.currentCity.domain');\n}\n\nexport function selectHostname(state: TState): string {\n const domain = get(state, 'auth.billingDomain');\n\n if (domain && domain !== 'interzet') {\n return 'https://' + domain + '.db.ertelecom.ru';\n } else {\n return get(state, 'city.currentCity.billingHost');\n }\n}\n","import styled from 'styled-components';\n\nimport { COLORS } from '../../../tokens/colors';\nimport { getSizes, radioSizes, TControlDirection, TControlSize } from '../baseControlsData';\n\nconst getRadioSizes = (size: TControlSize) => getSizes(size, radioSizes);\n\ntype IStyleProps = {\n size: TControlSize,\n disabled: boolean,\n withLabel: boolean,\n direction: TControlDirection,\n}\n\nexport const Label = styled.label`\n display: flex;\n flex-direction: ${({ direction }) => direction === 'right' ? 'row-reverse' : 'row'};\n flex-wrap: nowrap;\n align-items: center;\n margin: 0;\n padding: 0;\n ${p => getRadioSizes(p.size).font};\n color: ${({ disabled }) => disabled ? COLORS.TextDisabled : COLORS.TextPrimary};\n user-select: none;\n\n input[type=\"radio\"] {\n position: relative;\n appearance: none;\n flex: 0 0 auto;\n width: ${p => getRadioSizes(p.size).inputSize}px;\n height: ${p => getRadioSizes(p.size).inputSize}px;\n margin: 0;\n margin-right: ${p => p.withLabel && p.direction !== 'right' ? getRadioSizes(p.size).rMargin + 'px' : 0 };\n margin-left: ${p => p.withLabel && p.direction === 'right' ? getRadioSizes(p.size).rMargin + 'px' : 0 };\n padding: 0;\n background-color: ${COLORS.BgMain};\n border-width: 2px;\n border-style: solid;\n border-color: ${COLORS.Brand_Blue};\n border-radius: 50%;\n transition: .3s;\n outline: none;\n box-sizing: border-box;\n cursor: pointer;\n align-self: flex-start;\n\n @media (hover: hover) {\n &:hover {\n border-color: ${COLORS.Link};\n }\n }\n\n &:required:invalid {\n border-color: ${COLORS.Error};\n background-color: ${COLORS.BgError};\n\n &:hover {\n border-color: ${COLORS.Link};\n background-color: ${COLORS.BgMain};\n }\n }\n\n &:disabled {\n border-color: ${COLORS.GRAY_LIGHT};\n background-color: ${COLORS.GRAY_LIGHT};\n cursor: default;\n pointer-events: none;\n\n @media (hover: hover) {\n &:hover {\n border-color: ${COLORS.GRAY_LIGHT};\n }\n }\n }\n\n &:checked {\n border-color: ${COLORS.Control};\n background-color: ${COLORS.Control};\n\n &:after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n transform-origin: center;\n width: ${p => getRadioSizes(p.size).radioCheckSize}px;\n height: ${p => getRadioSizes(p.size).radioCheckSize}px;\n border-radius: 50%;\n background-color: ${COLORS.BgMain};\n }\n\n @media (hover: hover) {\n &:hover {\n border-color: ${COLORS.Link};\n background-color: ${COLORS.Outline_Dark};\n }\n }\n\n &:disabled {\n border-color: ${COLORS.GRAY_DARK};\n background-color: ${COLORS.GRAY_DARK};\n pointer-events: none;\n\n &:after {\n background-color: ${COLORS.GRAY_LIGHT};\n }\n }\n }\n }\n`;\n","import React, { FC, useCallback } from 'react';\n\nimport { TControlDirection, TControlSize } from '../baseControlsData';\n\nimport { Label } from './styled';\n\nexport interface IRadioProps {\n size?: TControlSize,\n id?: string,\n name?: string,\n value?: string,\n checked?: boolean,\n disabled?: boolean,\n required?: boolean,\n onChange?: (value: string, event?: React.ChangeEvent) => void,\n className?: string,\n direction?: TControlDirection,\n [key: string]: unknown,\n}\n\nconst BaseRadio: FC = ({\n size = 'XS',\n id,\n name = '',\n value = '',\n checked,\n disabled = false,\n required,\n children,\n onChange,\n className,\n direction = 'left',\n ...props\n}) => {\n const onChangeHandler = useCallback((event: React.ChangeEvent) => {\n if (!disabled) {\n onChange && onChange(event.target.value, event);\n }\n }, [disabled, onChange]);\n\n return (\n \n \n {children}\n \n );\n};\n\nexport default BaseRadio;\n","import styled, { css } from 'styled-components';\n\nimport { wideBreakpoints } from '@r1-frontend/ui-react/components/layouts/wideContainer';\nimport { H1, H2, H3, H4, H5 } from '@r1-frontend/ui-react/components/typography/heading';\nimport { Paragraph1, Paragraph2, Paragraph3, Paragraph4, Paragraph5 } from '@r1-frontend/ui-react/components/typography/paragraph';\n\nconst TextWrapper = styled.div<{ $lastIndent?: boolean }>`\n display: block;\n \n ${H1} {\n margin-bottom: 16px;\n \n @media (min-width: ${wideBreakpoints.mobile}) {\n margin-bottom: 24px;\n }\n }\n \n ${H2} {\n margin-bottom: 8px;\n \n @media (min-width: ${wideBreakpoints.mobile}) {\n margin-bottom: 16px;\n }\n }\n \n ${H3}, ${H4}, ${H5} {\n margin-bottom: 8px;\n }\n \n ${Paragraph1}, ${Paragraph2}, ${Paragraph3}, ${Paragraph4}, ${Paragraph5} {\n margin-bottom: 16px;\n\n ${({ $lastIndent = true }) => $lastIndent\n ? ''\n : css`\n &:last-child {\n margin-bottom: 0px;\n }\n `}\n }\n`;\n\nexport default TextWrapper;\n"],"names":["window","__NEXT_P","push","createSvg","strokeWidth","g","id","path","d","strokeMiterlimit","strokeLinecap","strokeLinejoin","styled","props","BlockContainer","rounder","$desktop","$mobile","indent","H4","Link","href","USER_LOGIN_ROUTE","passHref","Button","bType","size","WebpImage","urlWebp","LazyLoadImage","src","alt","wideBreakpoints","title","className","onClick","isTablet","useMatchMediaByWidth","RounderContainer","$radius","IndentContainer","$united","H5","$withIndent","$smaller","p","width","COLORS","selected","progressiveBackground","image","connectText","getPluralize","serviceText","themText","name","description","category","connectedCount","withStub","withButtonShowAll","showAll","onToggleShowAll","onShowCategory","children","ref","useElementVisibility","ListContainer","data-test","$direction","$size","TextWrapper","$lastIndent","H3","$inline","Paragraph4","Alert","AlertButtons","StubNoData","ButtonGroup","$justify","Icon","SingleArrowUp","SingleArrowDown","count","Array","from","length","_","key","Skeleton","height","borderRadius","BorderRadius","__","cardKey","filters","hasVasByShopItemId","subscriptions","shopItemId","some","item","dispatch","useDispatch","contextDispatch","useContextDispatch","useContextSelector","state","isShowDetails","authFormPopup","useSelector","availableServices","selectAvailableServicesByCategory","connected","vasReducer","loaded","isAuth","selectIsAuth","shallowEqual","loading","specific","selectedCategory","useRouter","query","alias","replace","scrollPosition","useRef","useEffect","loadSubscriptions","withMultibundle","withWatchControl","Number","specificVases","specificVas","items","hasVasInAvailable","setShopItemId","vas","Object","values","hasVasInConnected","useRouterChange","onStart","next","matches","match","setCategory","useValueByBreakpoint","desktop","sDesktop","laptop","handleCloseDrawer","flushState","current","scrollY","undefined","shallow","scrollTo","top","handleClickMultibundleCard","showcaseAnalytics","slideWidth","cardWidth","cellSpacing","slidesToShow","tablet","mobile","WideContainer","H2","NukaCarousel","withoutDots","slidesToScroll","withoutArrows","map","filter","WithSkeleton","isLoading","containerClassName","Category","WithSkeletonContext","ShowcaseSkeleton","AuthBanner","service","maxCount","multibundle","slice","ServiceCategory","behavior","list","start","toggleShowAllCategoryItems","value","handleToggleShowAll","handleOnShowSpecificCategory","MultibundleCard","onBtnClick","vasId","Services","ArrowUp","Drawer","isOpen","onClose","ServiceDetails","StopperPopup","ActionPopup","AuthFormPopup","setAuthFormPopup","userLoginRoute","url","btnText","authBtnText","ActionResultPopup","onSuccess","Context","SpeedBonusConnection","SubscriptionShowcase","NOT_AUTH_SHOWCASE","on","off","SubscriptionsPage","hostname","getHostname","companyName","selectCompanyName","currentCity","city","Layout","cityIn","relCanonical","withMenu","withFooter","withChat","bgColor","Showcase","getInitialProps","options","res","validatedAccessToken","initialProps","getABNVariant","nonPermanentRedirect","location","InputPhone","phoneDecorator","InputSimple","InputName","nameDecorator","Popup","DefaultPopup","Wrapper","BoxShadow","Title","FONTS","Inputs","Name","Phone","ButtonBlock","textColor","BaseButton","formFilledHandler","getParams","handleAuthClick","onlyBecomeClient","option","isPopup","csrf","selectCsrf","useState","phone","setPhone","setName","isValidInputs","setIsValidInputs","isOpenPopup","setIsOpenPopup","startInput","setStartInput","isValid","onChangeHandler","stateInput","_setState","dataLayerForCBPhonePush","action","ACTIONS","requestId","isOrderOpened","isResultOpened","resultTitle","resultText","resultType","EResultPopupStatus","popup","setPopup","submitRequest","useCallback","params","resp","message","status","doRequest","requestByConnection","isSuccess","payload","dataLayerForCBPhonePushWrapper","openPopupResult","ok","closePopup","ST","onChange","placeholder","errorMessage","PolicyNote","buttonText","agreeUrl","POLICY_PAGE_LINK","type","btnTypes","text","disabled","fio","product_id","EProductsId","clearInput","PopupResult","ImageBlock","Widget","defaultImageData","imageData","router","setIsLoading","nextUrl","setNextUrl","onComplete","only","onShow","navUrl","startsWith","onHide","events","selectDomain","get","selectHostname","domain","getRadioSizes","getSizes","radioSizes","Label","direction","font","inputSize","withLabel","rMargin","radioCheckSize","checked","required","event","target","input","H1","Paragraph1","Paragraph2","Paragraph3","Paragraph5","css"],"sourceRoot":""}